The field of the invention generally relates to substituting algorithms or programs, or portions thereof, stored in read-only memories of microcomputers.
Programs, such as algorithms, executed by microcomputers are typically stored in read-only memories (ROM's). A typical application of a microcomputer is to control the operation of an automobile engine which requires numerous algorithms to control a single engine function such as air/fuel ratio. The algorithms are often complex and may rely on complex modeling of the physical characteristics of a particular engine. Accordingly, it is often found that corrections of algorithms, or substitution of entire algorithms, is needed after the initial ROM is produced. Modifications to the programming of a ROM, however, incur a considerable time delay because new masks must be developed. In some situations, such as when vehicle production is committed, this time delay may be unacceptable. Although erasable and programmable memories are known (such as EPROMS and EEPROMS), their increased size, cost, and lower reliability militates against substituting an EPROM or EEPROM for a ROM.
U.S. Pat. No. 3,748,653 issued to Debruyne et al discloses a computer system which only substitutes a single erroneous line of code in a ROM with a corrected line of code, having the identical number of bits, stored in an erasable memory. Referring to FIGS. 1 and 2, read/write memory WCS contains corrected words for replacing the corresponding erroneous words in memory MP. The word length of memory WCS and MP are identical. Associative memory CAM, comprising a bank of registers, stores the addresses of corrected words in memory WCS. Address register RA simultaneously addresses both associative memory CAM and memory MP. In response, either a word from memory MP or a corrected word from memory WCS is routed through switch MX.
A disadvantage of this approach is that the correction is only a word for word replacement. This may be adequate when an inadvertent and simple program error has been made. However, it may not be suitable when an entire algorithm must be revised. For example, it is highly likely that the new or corrected algorithm may have a different number of words, bytes, or lines of code than the algorithm which is being replaced in which case the approach disclosed in patent '653 is not suitable.